##############################################################
## MOD Title:		Photo Album Block on Index (or anywhere)
## MOD Author:		Kooky <kooky@altern.org> (n/a) http://perso.edeign.com/kooky/	
## MOD Description:	Allow to add Photo Album Block on each page
##			you want it
## Rev date:		16/08/2004
##
##############################################################
#
#-----[ OPEN ]------------------------------------------
# (not for page_header.php)
# ie: index.php
XXXX.php

#
#-----[ FIND ]------------------------------------------
# (this line can be very different, depends on your page
# not the first in index.php)
#
	$template->assign_vars(array(

#
#------[ BEFORE, ADD ]------------------------------------------
#
// Start add  - Photo Album Block
$album_root_path = $phpbb_root_path . 'album_mod/';
include_once($album_root_path . 'album_common.'.$phpEx);

// Build Categories Index
$sql = "SELECT c.*
		FROM ". ALBUM_CAT_TABLE ." AS c
			LEFT JOIN ". ALBUM_TABLE ." AS p ON c.cat_id = p.pic_cat_id
		WHERE cat_id <> 0
		GROUP BY cat_id
		ORDER BY cat_order ASC";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
}
$catrows = array();

while( $row = $db->sql_fetchrow($result) )
{
	$album_user_access = album_user_access($row['cat_id'], $row, 1, 0, 0, 0, 0, 0); // VIEW
	if ($album_user_access['view'] == 1)
	{
		$catrows[] = $row;
	}
}
if ( $album_config['pics_all'] == '1' )
{
	$allowed_cat = '0'; // For Recent Public Pics below
}
else
{
	$allowed_cat = ''; 
}

//
// $catrows now stores all categories which this user can view. Dump them out!
//
for ($i = 0; $i < count($catrows); $i++)
{
	// Build allowed category-list (for recent pics after here)
	$allowed_cat .= ($allowed_cat == '') ? $catrows[$i]['cat_id'] : ',' . $catrows[$i]['cat_id'];

	// Check Pic Approval
	if ( ($catrows[$i]['cat_approval'] == ALBUM_ADMIN) || ($catrows[$i]['cat_approval'] == ALBUM_MOD) )
	{
		$pic_approval_sql = 'AND p.pic_approval = 1'; // Pic Approval ON
	}
	else
	{
		$pic_approval_sql = ''; // Pic Approval OFF
	}
}

// Recent Public Pics
if ( $album_config['pics_all'] == '1' )
{
	$pics_allowed = '0';
}
else
{
	$pics_allowed = '';
}

if ( $allowed_cat != $pics_allowed )
{
	$category_id = $album_config['cat_id'];

	if ( $album_config['pics_sort'] == '1' )
	{
		if ( $category_id != 0 )
		{
			$sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, u.user_level, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, p.pic_filename AS picfilename
				FROM ". ALBUM_TABLE ." AS p
					LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
					LEFT JOIN ". ALBUM_CAT_TABLE ." AS ct ON p.pic_cat_id = ct.cat_id
					LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
					LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
				WHERE p.pic_cat_id IN ($allowed_cat) AND ( p.pic_approval = 1 OR ct.cat_approval = 0 ) AND pic_cat_id = ($category_id)
				GROUP BY p.pic_id
				ORDER BY RAND()
				LIMIT ". $album_config['pics_number'];
		}
		else
		{
			$sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, u.user_level, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, p.pic_filename AS picfilename
				FROM ". ALBUM_TABLE ." AS p
					LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
					LEFT JOIN ". ALBUM_CAT_TABLE ." AS ct ON p.pic_cat_id = ct.cat_id
					LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
					LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
				WHERE p.pic_cat_id IN ($allowed_cat) AND ( p.pic_approval = 1 OR ct.cat_approval = 0 )
				GROUP BY p.pic_id
				ORDER BY RAND()
				LIMIT ". $album_config['pics_number'];
			}
	}
	else if ( $album_config['pics_sort'] == '0' )
	{
		if ( $category_id != 0 )
		{
			$sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, u.user_level, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, p.pic_filename AS picfilename
				FROM ". ALBUM_TABLE ." AS p
					LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
					LEFT JOIN ". ALBUM_CAT_TABLE ." AS ct ON p.pic_cat_id = ct.cat_id
					LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
					LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
				WHERE p.pic_cat_id IN ($allowed_cat) AND ( p.pic_approval = 1 OR ct.cat_approval = 0 ) AND pic_cat_id = ($category_id)
				GROUP BY p.pic_id
				ORDER BY pic_time DESC
				LIMIT ". $album_config['pics_number'];
		}
		else
		{
			$sql = "SELECT u.user_level, p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, u.user_level, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, p.pic_filename AS picfilename
				FROM ". ALBUM_TABLE ." AS p
					LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
					LEFT JOIN ". ALBUM_CAT_TABLE ." AS ct ON p.pic_cat_id = ct.cat_id
					LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
					LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
				WHERE p.pic_cat_id IN ($allowed_cat) AND ( p.pic_approval = 1 OR ct.cat_approval = 0 )
				GROUP BY p.pic_id
				ORDER BY pic_time DESC
				LIMIT ". $album_config['pics_number'];
		}
	}
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query recent pics information', '', __LINE__, __FILE__, $sql);
	}
	$recentrow = array();

	while( $row = $db->sql_fetchrow($result) )
	{
		$recentrow[] = $row;
	}

	if (count($recentrow) > 0)
	{
		for ($i = 0; $i < count($recentrow); $i += $album_config['cols_per_page'])
		{
			$template->assign_block_vars('recent_pics', array());

			for ($j = $i; $j < ($i + $album_config['cols_per_page']); $j++)
			{
				if ( $j >= count($recentrow) )
				{
					break;
				}

				if (!$recentrow[$j]['rating'])
				{
					$recentrow[$j]['rating'] = $lang['Not_rated'];
				}
				else
				{
					$recentrow[$j]['rating'] = round($recentrow[$j]['rating'], 2);
				}

				// Display pics horizontally
				$template->assign_block_vars('recent_pics.recent_col', array(
					'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_pic.$phpEx?pic_id=". $recentrow[$j]['pic_id']) : append_sid("album_page.$phpEx?pic_id=". $recentrow[$j]['pic_id']),
					'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $recentrow[$j]['pic_id']),
					'DESC' => $recentrow[$j]['pic_desc'])
				);

				if ( ($recentrow[$j]['user_id'] == ALBUM_GUEST) or ($recentrow[$j]['username'] == '') )
				{
					$recent_poster = ($recentrow[$j]['pic_username'] == '') ? $lang['Guest'] : $recentrow[$j]['pic_username'];
				}
				else
				{
					// Start add - Username Color Mod
					switch ( $recentrow[$j]['user_level'] )
					{
						case ADMIN:
							$poster_name = '<b>' . $recentrow[$j]['username'] . '</b>';
							$style_color = ' style="color:#' . $theme['fontcolor3'] . '"';
							break;
						case MOD:
							$poster_name = '<b>' . $recentrow[$j]['username'] . '</b>';
							$style_color = ' style="color:#' . $theme['fontcolor2'] . '"';
							break;
						default:
							$poster_name = $recentrow[$j]['username'];
							$style_color = '';
							break;
					}
					// End add - Username Color Mod
					$recent_poster = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;". POST_USERS_URL .'='. $recentrow[$j]['user_id']) . '"' . $style_color . '>' . $poster_name . '</a>';
				}

				// Start add - Pics Dimension/Size Add-on
				$pic_dimension = getimagesize(ALBUM_UPLOAD_PATH . $recentrow[$j]['picfilename']);
				$pic_width = $pic_dimension[0];
				$pic_height = $pic_dimension[1];

				$pic_size = round(((filesize(ALBUM_UPLOAD_PATH . $recentrow[$j]['picfilename'])) / 1024), 2) . ' ' . $lang['Kb'];
				// End add - Pics Dimension/Size Add-on

				// Display pics vertically
				$template->assign_block_vars('recent_pics.recent_detail', array(
					'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_pic.$phpEx?pic_id=". $recentrow[$j]['pic_id']) : append_sid("album_page.$phpEx?pic_id=". $recentrow[$j]['pic_id']),
					'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $recentrow[$j]['pic_id']),
					'DESC' => $recentrow[$j]['pic_desc'],
					'TITLE' => $recentrow[$j]['pic_title'],
					'POSTER' => $recent_poster,
					'TIME' => create_date($board_config['default_dateformat'], $recentrow[$j]['pic_time'], $board_config['board_timezone']),
					// New entries - Pics Dimension/Size Add-on
					'DIMENSION' => $pic_width . ' x ' . $pic_height,
					'SIZE' => $pic_size,
					'VIEW' => $recentrow[$j]['pic_view_count'],
					'RATING' => ($album_config['rate'] == 1) ? ( $lang['Rating'] . ': <a href="' . append_sid("album_rate.$phpEx?pic_id=". $recentrow[$j]['pic_id']) . '">' . $recentrow[$j]['rating'] . '</a><br />') : '',
					'COMMENTS' => ($album_config['comment'] == 1) ? ( $lang['Comments'] . ': <a href="' . append_sid("album_comment.$phpEx?pic_id=". $recentrow[$j]['pic_id']) . '">' . $recentrow[$j]['comments'] . '</a>') : '')
				);
			}
		}
	}
	else
	{
		// No Pics Found
		$template->assign_block_vars('no_pics', array());
	}
}
else
{
	// No Cats Found
	$template->assign_block_vars('no_pics', array());
}
// End add  - Photo Album Block
#
#-----[ FIND ]------------------------------------------
# (the same as above)
#
	$template->assign_vars(array(
#
#-----[ AFTER, ADD ]------------------------------------------
#
	// Start add - Photo Album Block
	'S_COLS' => $album_config['cols_per_page'],
	'S_COL_WIDTH' => ( 100/$album_config['cols_per_page'] ) . '%',
	'TARGET_BLANK' => ( $album_config['fullpic_popup'] ) ? ' target="_blank"' : '',
	'U_ALBUM' => append_sid('album.'.$phpEx),
	'L_ALBUM' => $lang['Album'],
	'L_NEWEST_PICS' => ( $album_config['pics_sort'] == '0' ) ? $lang['Newest_pics'] : $lang['Random_pics'],
	'L_NO_PICS' => $lang['No_Pics'],
	'L_PIC_TITLE' => $lang['Pic_Title'],
	'L_POSTER' => $lang['Poster'],
	'L_POSTED' => $lang['Posted'],
	'L_DIMENSION' => $lang['Dimension'],
	'L_SIZE' => $lang['Size'],
	'L_VIEW' => $lang['View'],
	// End add - Photo Album Block
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/XXXX_body.tpl

#
#-----[ FIND ]------------------------------------------
#
		<table..............>

##############################################################
# Choose one solution: vertical or horizontal display
# (or both lol, not recommanded)
##############################################################
#
# VERTICAL DISPLAY
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
	<tr>
		<th class="thTop" height="25" nowrap="nowrap">{L_NEWEST_PICS}</th>
	</tr>
	<!-- BEGIN no_pics -->
	<tr>
		<td class="row1" align="center" height="50"><span class="gen">{L_NO_PICS}</span></td>
	</tr>
	<!-- END no_pics -->
	<!-- BEGIN recent_pics -->
	<!-- BEGIN recent_detail -->
	<tr>
		<td class="row1" width="{S_COL_WIDTH}" align="center"><a href="{recent_pics.recent_detail.U_PIC}"{TARGET_BLANK}><img src="{recent_pics.recent_detail.THUMBNAIL}" border="0" alt="{recent_pics.recent_detail.DESC}" title="{recent_pics.recent_detail.DESC}" vspace="10" /></a></td>
	</tr>
	<tr>
		<td class="row2" align="center">
			<span class="gensmall">
			{L_PIC_TITLE}: {recent_pics.recent_detail.TITLE}<br />
			{L_POSTER}: {recent_pics.recent_detail.POSTER}<br />
			{L_POSTED}: {recent_pics.recent_detail.TIME}<br />
			{L_DIMENSION}: {recent_pics.recent_detail.DIMENSION}<br />
			{L_SIZE}: {recent_pics.recent_detail.SIZE}<br />
			{L_VIEW}: {recent_pics.recent_detail.VIEW}<br />
			{recent_pics.recent_detail.RATING}{recent_pics.recent_detail.COMMENTS}<br />
			</span>
		</td>
	</tr>
	<!-- END recent_detail -->
	<!-- END recent_pics -->
	<tr>
		<td class="row3" height="25" align="center"><span class="gensmall">[ <a href="{U_ALBUM}">{L_ALBUM}</a> ]</span></td>
	</tr>
</table>
<br />
##############################################################
#
# HORIZONTAL DISPLAY
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
	<tr>
		<th class="thTop" height="25" colspan="{S_COLS}" nowrap="nowrap">{L_NEWEST_PICS}</th>
	</tr>
	<!-- BEGIN no_pics -->
	<tr>
		<td class="row1" align="center" colspan="{S_COLS}" height="50"><span class="gen">{L_NO_PICS}</span></td>
	</tr>
	<!-- END no_pics -->
	<!-- BEGIN recent_pics -->
	<tr>
		<!-- BEGIN recent_col -->
		<td class="row1" width="{S_COL_WIDTH}" align="center"><a href="{recent_pics.recent_col.U_PIC}"{TARGET_BLANK}><img src="{recent_pics.recent_col.THUMBNAIL}" border="0" alt="{recent_pics.recent_col.DESC}" title="{recent_pics.recent_col.DESC}" vspace="10" /></a></td>
		<!-- END recent_col -->
	</tr>
	<tr>
		<!-- BEGIN recent_detail -->
		<td class="row2" align="center">
			<span class="gensmall">
			{L_PIC_TITLE}: {recent_pics.recent_detail.TITLE}<br />
			{L_POSTER}: {recent_pics.recent_detail.POSTER}<br />
			{L_POSTED}: {recent_pics.recent_detail.TIME}<br />
			{L_DIMENSION}: {recent_pics.recent_detail.DIMENSION}<br />
			{L_SIZE}: {recent_pics.recent_detail.SIZE}<br />
			{L_VIEW}: {recent_pics.recent_detail.VIEW}<br />
			{recent_pics.recent_detail.RATING}{recent_pics.recent_detail.COMMENTS}<br />
			</span>
		</td>
		<!-- END recent_detail -->
	</tr>
	<!-- END recent_pics -->
	<tr>
		<td class="row3" height="25" align="center" colspan="{S_COLS}"><span class="gensmall">[ <a href="{U_ALBUM}">{L_ALBUM}</a> ]</span></td>
	</tr>
</table>
<br />
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM